<?php
class Api2Controller extends AppController {

    var $name = 'Api2';
    var $uses = array();

    function beforeFilter() {
        parent::beforeFilter();
		$this->Auth->allow('*');
    }

    function index() {

    }
	
    function preorden($prescription_id=0) {
    	// http://www.epicrisis.x/api/preorden/123456
		$this->autoRender=false;

		if( $prescription_id>0 ){
			$this->loadModel('Prescription');
			$Prescripcion = $this->Prescription->read(null,$prescription_id);

			if($Prescripcion and $Prescripcion['Prescription']['tipo_prescripcion']=='practicas'){

				$this->loadModel('PeoplePractice');
				$options = array('conditions' => array('PeoplePractice.prescription_id' => $prescription_id));
				$Practicas = $this->PeoplePractice->find('all', $options);
//pr($Practicas);
				if ($Practicas) {
					
					$result = array();					
					foreach ($Practicas as $key => $value) {

						if($key==0){
							//------------------------------------------------- 
							$this->loadModel('Typodocument');
							$tipo_doc = $this->Typodocument->read(null,$value['Person']['typodocument_id']);

							$this->loadModel('Sex');
							$sex = $this->Sex->read(null,$value['Person']['sex_id']);

							$result['preorder_id']     = $prescription_id;
						    $result['doctor_name']     = $value['User']['lastname'].', '.$value['User']['name'];
					       	$result['client_name']     = $value['Client']['name'];
					       	$result['people_name']     = $value['Person']['name'];
					       	$result['people_lastname'] = $value['Person']['lastname'];
					       	$result['people_tipo_doc'] = $tipo_doc['Typodocument']['name'];
					       	$result['people_nro_doc']  = $value['Person']['nro_documento'];
					       	$result['people_sexo']     = $sex['Sex']['name'];
					       	$result['people_f_nac']    = $value['Person']['fecha_nacimiento'];

						}


						$r = array();						
						$r['id']   = $value['Practice']['id'];
						$r['name'] = $value['Practice']['name'];
						$result['practicas'][] = $r;


					} //endforeach $Practicas

					$resultado = json_encode($result);
					echo $resultado;


				} // endif $Practicas
				

			} else {
				header("HTTP/1.0 404 Not Found"); 
				exit;
				//return "404 No encontrado";
			}
		} else {
			header('HTTP/1.0 204 Sin contenido');
			exit;
			//return "204 Sin contenido";
		}
	}

	function resultado(){

		// Si llego el POST
		if (!empty($this->data)) {			

			$jdata = $this->data['resultado']['jdata'];			
			$data = json_decode($jdata);

			// Guardo el JSON temporalmente para validar los datos recibidos [TESTING]
/*			$DestinoTemporal = ROOT.DS.APP_DIR.DS."webroot".DS."uploads".DS;
			$outputfile2   = $DestinoTemporal.'json_crudo.json';
			$ifp2 = fopen( $outputfile2, "w" ); 
			fwrite( $ifp2, $jdata ); 
			fclose( $ifp2 );*/

			if($data->prescription_id > 0){
				$prescription_id = $data->prescription_id;
				$file_codificado_b64 = $data->file;

				if(isset($data->comentario)){
					$comentario = $data->comentario;
				} else {
					$comentario = '';
				}
				unset($data);

				$this->loadModel('Prescription');
				$Prescripcion = $this->Prescription->read(null,$prescription_id);

				if($Prescripcion 
					and $Prescripcion['Prescription']['tipo_prescripcion']=='practicas'
					and !empty($file_codificado_b64) ){

					// pr($Prescripcion);

					$fecha_evolucion = date("Y-m-d H:i:s");	
					$id_paciente     = $Prescripcion['Prescription']['person_id'];
					$client_id       = $Prescripcion['Prescription']['client_id'];
					$user_id         = $Prescripcion['Prescription']['user_id'];

					$fecha_archivo   = date("YmdHis");	
					$DestinoTemporal = ROOT.DS.APP_DIR.DS."webroot".DS."uploads".DS;
					$nombre_archivo  = $prescription_id.'-'.$fecha_archivo.'_practicas.pdf';
					$outputfile      = $DestinoTemporal.$nombre_archivo;

					// Se tuvo que reemplazar los espacios con + ya que las pruebas de POST no venian con URLENCODE
					$file_codificado = str_replace(" ", "+", $file_codificado_b64);

					$ifp = fopen( $outputfile, "w" ); 
					fwrite( $ifp, base64_decode( $file_codificado) ); 
					fclose( $ifp );
					
					$this->loadModel('Adjunto');
					$this->Adjunto->create();
					$this->Adjunto->set(array(
								'id'         => 0,
								'user_id'    => $user_id,
								'client_id'  => $client_id,
								'person_id'  => $id_paciente,
								'prescription_id'  => $prescription_id,
								'nombre'     => 'Resultados',
								'comentario' => $comentario,
								'adjunto'    => $nombre_archivo,
								'size_kb'	 => '', 
								'fecha'      => $fecha_evolucion
							));
					$this->Adjunto->save();

					$evolucionActiva = true;

					header("HTTP/1.0 200 Correct"); 
					echo "OK";
					exit;
				
				} else {
				
					header("HTTP/1.0 404 Not Found"); 
					exit;

				}

			} else {

				header('HTTP/1.0 204 Sin contenido');
				exit;

			}


		} else {
			header('HTTP/1.0 204 Sin Orden');
			exit;
			//return "204 Sin Orden";
		}

		$this->layout = 'ajax';
		$this->autoRender=false;

	}	


	function testing(){
		$this->layout = 'ajax';
		//$this->autoRender=false;

/*
		// Encoding del archivo PDF
		$DestinoTemporal = ROOT.DS.APP_DIR.DS."webroot".DS."temp".DS;
		$filename = $DestinoTemporal.'Practica-de-Prueba.pdf';
		$size = filesize($filename);
		$data=base64_encode(fread(fopen($filename, "rb"), $size));
		echo $data;


		// Decoding
		$outputfile   = $DestinoTemporal.'nuevo.pdf';
		$ifp = fopen( $outputfile, "wb" ); 
		fwrite( $ifp, base64_decode( $data ) ); 
		fclose( $ifp );
*/

		$data['file']        = $this->_archivo_64();
		$data['preorder_id'] = '12345';		

		$jdata = json_encode($data);

		$this->set('jdata',$jdata);



	}	



	
	function _archivo_64($archivo=''){

		return $archivo;

	}

}
?>